home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / m_to_r / reporter / readme.txt < prev    next >
Encoding:
Text File  |  1996-09-15  |  12.2 KB  |  276 lines

  1.                               Reporter Control
  2.                                 Version 1.03
  3.                                      By
  4.                           Robert Wittig (76135,2105)
  5.  
  6. Table of Contents
  7. -----------------
  8. I.    Introduction
  9. II.   Pricing/Ordering
  10. III.  Included Files
  11. IV.   Documentation
  12. V.    Concerning placement of text output
  13. VI.   What's new in this version
  14. VII.  Final Message
  15.  
  16.  
  17. I. Introduction
  18. ---------------
  19.  
  20. This is the beta release of the Reporter component.  This component assists
  21. the programmer in creating reports through the use of the following:
  22.  
  23.         1)  Measurements specified in Dots, Inches or Millimeters.
  24.  
  25.             The Reporter allows you to set the report's default unit to
  26.             either printer dots (default), inches or millimeters.  This
  27.             allows you to (in most cases) completely ignore the printer's
  28.             dots/inch.  For direct output through the Reporter's canvas,
  29.             you need to specify positioning in dots.  ConvertWidth and
  30.             ConvertHeight functions are included to aid you in converting
  31.             between inches/millimeters and dots in these cases. 
  32.  
  33.  
  34.         2)  Bands - Full Page, Header, Group, Detail, and Footer.
  35.  
  36.             The Reporter provides support for "bands".  A band is a portion
  37.             of the page set aside for a specific function.  Each band has a
  38.             printing event associated with it.  The Reporter is responsible
  39.             for calling the print events in the proper order, freeing the 
  40.             programmer from coordinating the output of headers, footers and
  41.             details and from deciding when a new page is required.  Using the
  42.             Reporter, a simple multi-page report could be printed out with
  43.             only one output call! (in the detail band) 
  44.  
  45.  
  46.         3)  Support for memo output.
  47.         
  48.             You may output a memo from tMemo, tDBMemo, tMemoField or pChar.
  49.             You can constrain the width and height of the memo, or you can
  50.             constrain only the width and let the Reporter determine the
  51.             height.  The Reporter also allows you to "stretch" a band's height
  52.             to accomodate oversized memos.
  53.  
  54.  
  55.         4)  Native support for tGraphic, tChartFX, tImage and tGraphicField. 
  56.  
  57.             The Reporter handles the details of positioning these graphic
  58.             objects on the page, as well as scaling them to the dimensions
  59.             you specify.
  60.  
  61.  
  62.         5)  Named font styles.
  63.  
  64.             The Reporter allows you to assign names to a font (color,size,
  65.             style,typeface) style.  Then, later in the report, you can change
  66.             the font to one of your pre-defined styles by referring to its
  67.             name.
  68.  
  69.         6)  Reporter Canvas
  70.  
  71.             The Reporter provides access to the printed page through its
  72.             Canvas property.  Through this property, you may use any output
  73.             call that applies to a tCanvas object.
  74.  
  75.  
  76.         7)  Miscellaneous features.
  77.  
  78.             The Reporter has several other features that assist the programmer
  79.             in creating a report, including the ability to change page
  80.             orientation between pages, changing the report's header and footer
  81.             "on the fly" and alignment of output (text or graphic) anywhere
  82.             within a band through the use of positioning constants.
  83.  
  84. I will continue adding features to the Reporter as the need develops.
  85. Also, I will be adding a wrapper component that will allow you to set up a
  86. report and preview the output while in Delphi design mode.
  87.  
  88.  
  89. II.  Pricing/Ordering
  90. ---------------------
  91.  
  92. The Reporter is being released as shareware.  It will only run while Delphi
  93. is running.  If you attempt to use it without Delphi, you will be informed
  94. that you can only use it while Delphi is running.  If you continue to try to
  95. use it, you will get a GPF (because the Reporter is not created if Delphi
  96. is not running).
  97.  
  98. With that out of the way, on to pricing.  If you wish to distribute reports
  99. using the Reporter, you may register the Reporter for $30 + $5 shipping/ 
  100. handling ($15 outside North America-sorry for the extra charge, but shipping
  101. prices are fairly high outside North America).  You may also choose to 
  102. register and receive the documentation/source code only through email, for
  103. a flat $30 charge.  With your registration, you will receive:
  104.  
  105.      1)  A E-Mailed copy of the current Reporter along with full source code,
  106.      2)  Any updates made to the Reporter (including any tools developed to
  107.          facilitate the use of the Reporter) for a period of one year dating
  108.          from the time of your registration.
  109.      3)  Printed documentation and Reporter/source code on disk when the
  110.          Reporter is released in a non-beta format (if you chose that payment
  111.          option).
  112.  
  113. As a registered user, you can:
  114.  
  115.      1)  Distribute programs that use the Reporter without paying any royalties.
  116.      2)  Modify the source code for your own use (though this tends to negate
  117.          support for the Reporter, the more you modify).
  118.  
  119. As a registered user, you cannot:
  120.  
  121.      1)  Distribute the source code, either in its original state, or
  122.          in modified form.  (Although you are free to borrow the concepts
  123.          it embodies)
  124.      2)  Resell the Reporter to a third party.
  125.  
  126.  
  127. The registration fee is (as stated above) $30 with an optional $5 shipping/
  128. handling ($15 outside North America).  You may either mail this to me at the
  129. following address or register on CompuServe through one of the following
  130. SWREG IDs.  To register on CompuServe, GO SWREG and choose Register 
  131. Shareware from the list of options.  If you register through the mail, please
  132. include your name, company name (optional), street address, city, state and
  133. zip.  If you do not include these, you will not receive the Reporter.  If you
  134. send a check, please make it payable to Robert Wittig.
  135.  
  136.         Robert Wittig
  137.         PO BOX 8052
  138.         Fort Smith, AR 72902-8052
  139.  
  140. SWREG ID#5830  Reporter with hard-copy documentation/source code on disk.
  141. SWREG ID#5832  Reporter without hard-copy documentation/source code on disk.
  142.  
  143.  
  144. III.  Included Files
  145. --------------------
  146.  
  147. PSTATUS.DFM  A simple print status dialog form that informs the user of the
  148. PSTATUS.PAS  current status of the report and allows the report to be aborted.
  149.  
  150. REPORTS.INT  The interface and compiled unit form of the Reporter.
  151. REPORTS.DCU
  152.  
  153. README.TXT   This file.
  154.  
  155.               The sample reports assume that you have a database alias
  156.               DBDEMOS defined, and that it points to the sample database
  157.               files installed with Delphi.  If, for some reason, you don't
  158.               have this alias you will need to change the DatabaseName
  159.               property of each table and query used in the sample reports.
  160.               ------------------------------------------------------------
  161.  
  162. MASTRPT.DPR   These files compose the sample M.A.S.T. report.  This report
  163. MASTRPT.RES   mimics the report included in the MASTAPP demo that ships
  164. MASTRPT1.PAS  with Delphi.  Text output is highlighted in this example.
  165. MASTRPT1.DFM
  166.  
  167. SUMMRPT.DPR   These files compose the Summary report.  This report demon-
  168. SUMMRPT.RES   strates how to use groups along with detail bands, as well
  169. SUMMRPT1.PAS  as giving an example of the use of a report variable.
  170. SUMMRPT1.DFM
  171.  
  172. CHRTRPT.DPR   These files compose the ChartFX report.  This report demon-
  173. CHRTRPT.RES   strates how to output a ChartFX on the page.
  174. CHRTRPT1.PAS
  175. CHRTRPT1.DFM
  176.  
  177. BOXRPT.DPR    These files compose the Header/Orientation report.  This report
  178. BOXRPT.RES    demonstrates using the canvas for graphic output, changing the
  179. BOXRPT1.PAS   page orientation between pages of a report, as well as changing
  180. BOXRPT1.DFM   the report's header across pages.
  181.  
  182. FISHRPT.DPR   These files compose the FishFacts report.  This report high-
  183. FISHRPT.RES   lights the use of the Reporter to output graphics stored in 
  184. FISHRPT1.PAS  a database.  It also demonstrates how to let a band's height
  185. FISHRPT1.DFM  stretch to accomodate a large memo, while still preventing the
  186.               band from being split across pages.
  187.  
  188. To run any of these demos, just open the appropriate project file and run
  189. it (Run/Run from the main menu or F9).
  190.  
  191.  
  192. IV.  Documentation
  193. ------------------
  194.  
  195. Since the Reporter is still in the beta stage, the documentation is limited 
  196. to this file, comments in Reports.Int (which are fairly extensive) and 
  197. comments in the sample reports.  More formal documentation will be forth-
  198. coming as the Reporter nears completion and the chance of major changes to
  199. the code/operation is removed.  If you need help deciphering a Reporter
  200. function or figuring out how to do something, check the sample reports or 
  201. send me a message/email on CompuServe (76135,2105).
  202.  
  203.  
  204. V.  Concerning placement of text output
  205. ---------------------------------------
  206.  
  207. Currently, the Reporter outputs text so that the upper left corner of the
  208. text is aligned with the current print head position.  Under most circum-
  209. stances, this does not matter.  However, if you wish to mix font sizes on
  210. the same line, you will need to do some extra maneuvering to ensure that the
  211. bottom of the text lines up rather that the top.  The MastApp demo contains
  212. a sample of this type of positioning.  A future enhancement already being
  213. planned is to allow you to specify whether text aligns upper left or bottom
  214. left to the print head.
  215.  
  216.  
  217. VI.  What's new in this version
  218. -------------------------------
  219.  
  220. This version adds the following:
  221.  
  222.         1)  Reporter.PreferredUnit
  223.             By setting PreferredUnit, the user can specify print output
  224.             positioning without needing to convert to printer dots.
  225.                 Reporter.PreferredUnit := puInches;
  226.                 Reporter.TabTo ( 2.0 );
  227.             For example, the above statements cause the Reporter to position
  228.             the print head 2 inches from the left margin.
  229.  
  230.         2)  Memo output.
  231.             The Reporter now has procedures (DirectMemoOut, MemoOut, and
  232.             DBMemoOut) that allow you to print memos.  DirectMemoOut takes
  233.             a null-terminated string as an argument.  MemoOut takes either
  234.             a tMemo or tDBMemo component as an argument.  DBMemoOut takes
  235.             a tMemoField as an argument.  You can specify a box to print the
  236.             memo in and the Reporter will clip output beyond the bounds of the
  237.             box.  Alternatively, you can set the width of the box only, and 
  238.             the Reporter will determine the height of the box.  See FishRpt 
  239.             for an example of memo output.
  240.  
  241.         3)  Reporter.StretchBand
  242.             By setting StretchBand true or false (default), you can tell
  243.             the Reporter whether or not to allow a band's height to be
  244.             dynamic.  This property was added mostly in support of memos.
  245.             Quite often, you'll have memos that aren't the same size.  You
  246.             usually want memos to print with the rest of the detail, as
  247.             opposed to printing across pages.  However, you don't want to set
  248.             the band height to accomodate the height of the largest memo,
  249.             because you'll have a lot of wasted space.  So, I added the
  250.             StretchBand property.  If you set this to true, the Reporter will
  251.             call the InitBand procedure (if you've defined it) each time the
  252.             band prints.  This way, the Reporter will know how tall the band
  253.             is and can use only as much space as is needed, while also
  254.             preventing the band from breaking across pages.  The FishRpt demo
  255.             provides an example of the use of StretchBand.
  256.  
  257.  
  258. The following bugs have been fixed:
  259.  
  260.         1)  A bug in the way TabTo and MoveY has been fixed.  They had been
  261.             moving the print head relative to the non-printable area, rather
  262.             than the margins.  That has now been fixed.
  263.  
  264.  
  265. VII.  Final Message
  266. -------------------
  267.  
  268. I would very much appreciate any comments/gripes/suggestions you have
  269. regarding the Reporter.  If you detect a bug, or something doesn't work
  270. the way you think it should, just let me know.  I hope you enjoy using the
  271. Reporter and it helps take a load off your shoulders.
  272.  
  273.  
  274. - Robert Wittig
  275.   76135,2105
  276.